<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@page import="domains.*"%>
<%@page import="services.DAOFactory"%>
<%@page import="services.GeneralFunctions"%>
<%@page import="servlets.UpdateImageServlet"%>
<%@page import="java.util.List"%>

<%
    boolean photo1ButtonEnabled = false;  // 1 и 2 картинки для бесшовного копирования
    boolean photo2ButtonEnabled = true;
    
    if (session.getAttribute("current_image") == null) session.setAttribute("current_image", "");
    
    String text = request.getParameter("text");
    String message = null;
    session.setAttribute("login", "");
    session.setAttribute("password", "");
    session.setAttribute("password2", "");
    session.setAttribute("code", "");
    session.setAttribute("fio", "");
    session.setAttribute("birthday", "");
    session.setAttribute("message_reg", "");
    session.setAttribute("message_login", "");
    
    if (text != null) {
        if (text.equals("apply_editing")) {
            // удаляем исходное изображение
            GeneralFunctions.deleteImage((String) session.getAttribute("current_image"));
            // полагаем временно отредактированное изображение текущим
            session.setAttribute("current_image", session.getAttribute("temp_image"));
            // удаляем атрибут временного изображения
            session.removeAttribute("temp_image");
        } else if (text.equals("discard_editing")) {
            // удаляем временно отредактированное изображение
            GeneralFunctions.deleteImage((String) session.getAttribute("temp_image"));
            // удаляем атрибут временного изображения
            session.removeAttribute("temp_image");
            // исходное изображение остается в качестве текущего (для этого ничего делать не надо)
            // + на всякий случай отмена бесшовного копирования
            session.removeAttribute("processing_seamless_cloning");
            session.removeAttribute("ready_for_seamless_cloning");
        } else if (text.equals("apply_cropping")) {
            UpdateImageServlet.applyCropping(request);
        } else if (text.equals("grayscale")) {
            UpdateImageServlet.applyGrayscaleFilter(request);
        } else if (text.equals("invert")) {
            UpdateImageServlet.applyInversionFilter(request);
        } else if (text.equals("seamless_cloning")) {
            //---------------------------------------
            session.setAttribute("processing_seamless_cloning", true);
            //
            if (session.getAttribute("current_photo1") == null) session.setAttribute("current_photo1", "");
            if (session.getAttribute("current_photo2") == null) session.setAttribute("current_photo2", "");
            //
            String subtext = request.getParameter("subtext");
            if ("goto_photo2".equals(subtext)) {
                session.setAttribute("current_photo1", session.getAttribute("current_image"));
                session.setAttribute("current_image", session.getAttribute("current_photo2"));
                photo1ButtonEnabled = true;
                photo2ButtonEnabled = false;
            } else if ("goto_photo1".equals(subtext)) {
                if (request.getParameter("x1") != null) {
                    UpdateImageServlet.getCroppedFragment(request);
                    session.setAttribute("ready_for_seamless_cloning", true);
                }
                session.setAttribute("current_photo2", session.getAttribute("current_image"));
                session.setAttribute("current_image", session.getAttribute("current_photo1"));
                photo1ButtonEnabled = false;
                photo2ButtonEnabled = true;
            } else if ("apply_seamless_cloning".equals(subtext)) {
                // здесь собственно преобразование!
                UpdateImageServlet.applySeamlessCloning(request);
                session.removeAttribute("processing_seamless_cloning");
                session.removeAttribute("ready_for_seamless_cloning");
            } else if ("loaded_photo2".equals(subtext)) {
                session.setAttribute("current_photo2", session.getAttribute("current_image"));
                photo1ButtonEnabled = true;
                photo2ButtonEnabled = false;
            }
            //---------------------------------------
        }
    }
%>   

<%
// регистрация пользователя
if ((text!=null)&&(text.equals("Register"))) {
        String login = (String) request.getParameter("login");
        String password = (String) request.getParameter("password");
        String password2 = (String) request.getParameter("password2");
        String code = (String) request.getParameter("code");
        String fio = (String) request.getParameter("fio");
        String birthday = (String) request.getParameter("birthday");
        int i = DAOFactory.getInstance().getUserService().addUser (login, password, password2, code, fio, birthday);
        if (i==1){ //пустые поля
            session.setAttribute("login", login);
            session.setAttribute("password", password);
            session.setAttribute("password2", password2);
            session.setAttribute("code", "");
            session.setAttribute("fio", fio);
            session.setAttribute("birthday", birthday);
            session.setAttribute("message_reg", "Регистрация не успешна, так как заполнены не все поля. Будьте внимательными!");
            request.getRequestDispatcher("/registration.jsp").forward(request, response);
        }
        else if (i==2){ //такой  логин уже есть
            session.setAttribute("login", "");
            session.setAttribute("password", password);
            session.setAttribute("password2", password2);
            session.setAttribute("code", code);
            session.setAttribute("fio", fio);
            session.setAttribute("birthday", birthday);
            session.setAttribute("message_reg", "Регистрация не успешна, так как пользователь с логином "+login+" уже существует. Включите фантазию и придумайте новый пароль!");
            request.getRequestDispatcher("/registration.jsp").forward(request, response);
        }
        else if (i==3){ //пароли не совпадают
            session.setAttribute("login", login);
            session.setAttribute("password", "");
            session.setAttribute("password2", "");
            session.setAttribute("code", code);
            session.setAttribute("fio", fio);
            session.setAttribute("birthday", birthday);
            session.setAttribute("message_reg", "Регистрация не успешна, так как подтвержденный пароль не совпадает с введенным. Введите пароли еще раз!");
            request.getRequestDispatcher("/registration.jsp").forward(request, response);
        }
        else if (i==4){ //не верный код защиты
            session.setAttribute("login", "");
            session.setAttribute("password", password);
            session.setAttribute("password2", password2);
            session.setAttribute("code", code);
            session.setAttribute("fio", fio);
            session.setAttribute("birthday", birthday);
            session.setAttribute("message_reg", "Регистрация не успешна, так как введен не верный СМС-код. Попробуйте еще раз!");
            request.getRequestDispatcher("/registration.jsp").forward(request, response);
        }
        else if (i==0){ //регистрация выполнена
          message = "Регистрация выполнена успешно!";
        }
}

//вход пользователя в систему
else if ((text!=null)&&(text.equals("Log_in"))) {
    String log = (String) request.getParameter("login");
    String pass = (String) request.getParameter("password");
    if (DAOFactory.getInstance().getUserService().findUserByLoginAndPassword(log, pass)){
        User user = DAOFactory.getInstance().getUserService().findUserByLogin(log);
        session.setAttribute("user_id", user.getId());
        session.setAttribute("hello", "Добро пожаловать, " + user.getLogin() + "!");
        session.setAttribute("ok", "true");
    }
    else {
        session.setAttribute("message_login", "Введен неверный логин или пароль!");
        session.setAttribute("ok", "false");
    }
}

//выход пользователя
else if ((text!=null)&&(text.equals("exit"))) {
	session.setAttribute("user_id", "");
	session.setAttribute("hello", "");
	session.setAttribute("ok", "false");
}

//загрузка изображения из БД
else if ((text!=null)&&(text.equals("Ok"))) {
	List<Image> imgs = DAOFactory.getInstance().getImageService().getImagesOfUser(Integer.parseInt(session.getAttribute("user_id").toString()));
	if (imgs!=null) {
	    for (int i=0;i<imgs.size();i++) {
		    Image image  = imgs.get(i);
		    String str = request.getParameter(image.getId().toString());
		    if ((str!=null)&&(str.equals("on"))) {
		    	String sourceImage = image.getName();
		    	String destinationImage = GeneralFunctions.generateName();
		    	GeneralFunctions.cloneImage(sourceImage, destinationImage);
			    session.setAttribute("current_image", destinationImage);
		    }
	    }
	}
}

//сохранение изображения в БД
else if ((text!=null)&&(text.equals("Save"))) {
	 String desc = (String) request.getParameter("desc");
	 DAOFactory.getInstance().getImageService().addImageOfUser(Integer.parseInt(session.getAttribute("user_id").toString()), desc, session.getAttribute("current_image").toString(), 640, 480);
	 session.setAttribute("current_image", "");
}
%>





<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Online editor</title>





<!-- Scripts ------------------------------------------------------------------->

<script language="JavaScript">

function createRequest() {
    var request = null;
    try {
        request = new XMLHttpRequest();
    } catch (trymicrosoft) {
        try {
            request = new ActiveXOblect("Msxml2.request");
        } catch (othermicrosoft) {
            try {
                request = new ActiveXObject("Microsoft.request");
            } catch (failed) {
                request = null;
            }
        }
    }
    if (request == null) alert("Ошибка создания XMLHttpRequest объекта!");
    else return request;
}

function updateImage() {
    if (request.readyState == 4) {
        document.getElementById("currentImage").src = "images/" + request.responseText + ".png";
    }
}

function updateImageRequest(actionType) {
    //Создать URL для подключения
    var url = null;
    if (actionType == 101 || actionType == 102)
    	url = 'UpdateImageServlet?action=brightness&value1=' + document.getElementById("brightnessInput").value +
    											  '&value2=' + document.getElementById("contrastInput").value;
    else if (actionType == 103) url = "UpdateImageServlet?action=rotate_left";
    else if (actionType == 104) url = "UpdateImageServlet?action=rotate_right";
    else if (actionType == 105) url = "UpdateImageServlet?action=rotate_180";
    else if (actionType == 106) url = "UpdateImageServlet?action=reflect_horizontal";
    else if (actionType == 107) url = "UpdateImageServlet?action=reflect_vertical";
    //Создаем объект XMLHttpRequest
    request = createRequest();
    //Открыть соединение с сервером
    request.open("GET", url, true);
    //Установить функцию для сервера, которая будет выполнена после его ответа
    request.onreadystatechange = updateImage;
    //Отправить запрос
    request.send(null);
}

//-------------------------------------------------------------------------------

<% if ("crop".equals(text) || (photo1ButtonEnabled && !photo2ButtonEnabled)) { %>

var leftButtonPressed = false;
var firstPositionX = 0;
var firstPositionY = 0;

function mouseMoved() {
    // если кнопка уже нажата
    if (leftButtonPressed) {
        var width = window.event.pageX - firstPositionX;
        var height = window.event.pageY - firstPositionY;
        drawSelection(firstPositionX, firstPositionY, width, height);
        document.getElementById("applyCropButton").disabled = (width > 1 && height > 1) ? 0 : 1;
    }
}

function mousePressed() {
    leftButtonPressed = true;
    firstPositionX = window.event.pageX;
    firstPositionY = window.event.pageY;
    drawSelection(0, 0, 0, 0);
    document.getElementById("applyCropButton").disabled = 1;
}

function mouseReleased() {
    leftButtonPressed = false;
    //
    var object = document.getElementById("currentImage");
    var x = 0, y = 0;
    while (object) {
       x += object.offsetLeft;
       y += object.offsetTop;
       object = object.offsetParent;
    }
    //
    var x1 = firstPositionX - x;
    var y1 = firstPositionY - y;
    var x2 = window.event.pageX - x;
    var y2 = window.event.pageY - y;
    //
    <% if ("crop".equals(text)) {%>
    document.getElementById("applyCropWrapper").href = "index.jsp?text=apply_cropping&x1=" + x1 + '&y1=' + y1 + '&x2=' + x2 + '&y2=' + y2;
    <% } %>
    //
    <% if (photo1ButtonEnabled && !photo2ButtonEnabled) {%>
    document.getElementById("photo1ButtonWrapper").href = "index.jsp?text=seamless_cloning&subtext=goto_photo1&x1=" + x1 + '&y1=' + y1 + '&x2=' + x2 + '&y2=' + y2 + 
                                                          '&abs_x=' + firstPositionX + '&abs_y=' + firstPositionY;
    <% } %>
}

function drawSelection(x, y, w, h) {
    var selection = document.getElementById("selection");
    selection.style = "position:absolute; left:" + x + "px; top:" + y + "px;";
    selection.width = w;
    selection.height = h;
}

<% } %>

//-------------------------------------------------------------------------------

<% if (session.getAttribute("ready_for_seamless_cloning") != null) { %>

var leftButtonPressed = false;
var basePositionX = <% out.write(request.getParameter("abs_x")); %>;
var basePositionY = <% out.write(request.getParameter("abs_y")); %>;
var pressPositionX = 0;
var pressPositionY = 0;

function mousePressed() {
    leftButtonPressed = true;
    pressPositionX = window.event.pageX;
    pressPositionY = window.event.pageY;
}

function mouseMoved() {
    // если кнопка уже нажата
    if (leftButtonPressed) {
        var dx = window.event.pageX - pressPositionX;
        var dy = window.event.pageY - pressPositionY;
        document.getElementById("fragment").style = "position:absolute; left:" + (basePositionX + dx) + "px; top:" + (basePositionY + dy) + "px;";
    }
}

function mouseReleased() {
    leftButtonPressed = false;
    //
    var object = document.getElementById("currentImage");
    var x = 0, y = 0;
    while (object) {
       x += object.offsetLeft;
       y += object.offsetTop;
       object = object.offsetParent;
    }
    //
    object = document.getElementById("fragment");
    var xf = 0, yf = 0;
    while (object) {
       xf += object.offsetLeft;
       yf += object.offsetTop;
       object = object.offsetParent;
    }
    //
    basePositionX = xf;
    basePositionY = yf;
    document.getElementById("applySeamlessCloningWrapper").href = "index.jsp?text=seamless_cloning&subtext=apply_seamless_cloning&bind_x=" + (xf - x) + '&bind_y=' + (yf - y);
}

<% } %>

</script>

<!-- End Scripts --------------------------------------------------------------->





<!-- Styles -------------------------------------------------------------------->

<style type="text/css">
    .cleaner_h10 { clear: both; width:100%; height: 10px; }
    .cleaner_h20 { clear: both; width:100%; height: 20px; }
    .cleaner_h30 { clear: both; width:100%; height: 30px; }
    .cleaner_h40 { clear: both; width:100%; height: 40px; }
    .cleaner_h50 { clear: both; width:100%; height: 50px; }
    .cleaner_h60 { clear: both; width:100%; height: 60px; }
</style>

<!-- End Styles ---------------------------------------------------------------->





</head>

<body style="font-family: Tahoma, Geneva, sans-serif; font-size: 14px; background:url('images/fon.jpg');">

<div style="width: 1000px; margin: 0 auto;">





<!-- Верхняя часть страницы ---------------------------------------------------->

<% if (!"true".equals(session.getAttribute("ok"))) { %>
<div align="left" style="width:90%; float:left; margin-bottom:5px;">
    <b>Добро пожаловать, гость! Вы используете бесплатный фоторедактор "Online editor".</b><br>
    <b>Авторизуйтесь или зарегистрируйтесь, чтобы получить доступ к дополнительным функциям.</b>
</div>
<% } %>

<!-- Конец верхней части страницы ---------------------------------------------->





<!-- Секция загрузки фотографий ------------------------------------------------>

<div align="center" style="border: 1px dashed; border-radius:15px; width:321px; height:110px; float:left;">
	<div class="cleaner_h10"></div>
    <b>Загрузите фотографию</b>
    <div class="cleaner_h10"></div>
    <form enctype="multipart/form-data" action="UploadImageServlet" method='post'>
        <input type='file' name="file_name" style="width:220px;"/>
        <input type='submit' value="Загрузить"/>
    </form>
    <div class="cleaner_h10"></div>
	<div style="float:right;">
		<a href="load_image.jsp">
			<input type="button" value="Из базы изображений" style="width:150px; height:25px;" <% if (session.getAttribute("ok")==null || session.getAttribute("ok").equals("false")) out.write("disabled"); %> >
		</a>
		&nbsp;&nbsp;
	</div>
</div>

<!-- Конец секции загрузки фотографий ------------------------------------------>





<!-- Секция сохранения фотографий ---------------------------------------------->

<div align="center" style="border: 1px dashed; border-radius:15px; width:310px; height:110px; float:left; margin-left:20px; margin-right:20px;">
	<div class="cleaner_h10"></div>
    <b>Сохраните фотографию</b>
    <div class="cleaner_h10"></div>
    <a href=<% out.write("\"images/" + session.getAttribute("current_image") + ".png\""); %> target="_blank">
        <input type="submit" name="save_comp" value="На компьютер" style="width:150px; height:25px;" <% if (session.getAttribute("current_image").equals("")) out.write("disabled"); %> >
    </a>
    <div class="cleaner_h10"></div>
	<a href="save_image.jsp">
		<input type="button" value="В базу изображений" style="width:150px; height:25px;" <% if (session.getAttribute("current_image").equals("") || session.getAttribute("ok")==null || session.getAttribute("ok").equals("false")) out.write("disabled"); %> >
	</a>
</div>

<!-- Конец секции сохранения фотографий ---------------------------------------->





<!-- Секция авторизации -------------------------------------------------------->

<div align="center" style="border: 1px dashed; border-radius:15px; width:321px; height:110px; float:left;">
	<div class="cleaner_h10"></div>
	<b><%
	if (session.getAttribute("hello") != null && !session.getAttribute("hello").equals("")) {
    	out.write(session.getAttribute("hello").toString());
    	out.write("&nbsp;&nbsp;&nbsp;(<a href=\"index.jsp?text=exit\">Выйти</a>)");
    	out.write("<div class=\"cleaner_h10\"></div>");
    }
	%></b>

	<form action="index.jsp" method="get">
	   <% if ((session.getAttribute("ok")==null)||(session.getAttribute("ok").equals("false"))) { %>
	       <b>Логин</b>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" style="width:137px" name="login">
	       <div class="cleaner_h10"></div>
	       <b>Пароль</b>&nbsp;&nbsp;<input type="password" style="width:137px" name="password">
	       <div class="cleaner_h10"></div>
	       <input type="submit" name="text" value="Log_in" style="width:100px">
	       <a href="registration.jsp">
	       	   <input type="button" name="register" value="Регистрация" style="width:100px">
	       </a>
	   <% } else { %>
	       <div align="center">
	           <a href="my_account.jsp"><input type="button" name="my_account" value="Мой аккаунт" style="width:150px; height:25px;"></a>
	           <div class="cleaner_h10"></div>
	           <a href="my_images.jsp"><input type="button" name="my_images" value="Мои фотографии в БД" style="width:150px; height:25px;"></a>
	       </div>
	   <% } %>     
	</form>

	<div class="cleaner_h10"></div>
	<b><%
	   	if (message != null) out.write("<p style=\"color:green; margin-top:4px;\">" + message + "</p>");
	   	out.write("<p style=\"color:red; margin-top:4px;\">" + session.getAttribute("message_login") + "</p>");
	%></b>
</div>

<!-- Конец секции авторизации -------------------------------------------------->





<div class="cleaner_h20"></div>





<!-- Секция функциональных кнопок ---------------------------------------------->

<div align="center" style="border: 1px dashed; width:178px; height:480px; border-radius: 15px; float:left; margin-right:6px;">
    <div class="cleaner_h10"></div>
    <b>Инструменты</b>
    <div class="cleaner_h20"></div>
    <a href="index.jsp?text=brightness_contrast">
        <input id="1" type="button" value="Яркость/контрастность" <% if (session.getAttribute("current_image").equals("") || session.getAttribute("processing_seamless_cloning") != null) out.write("disabled"); %> style="width:168px; height:60px;">
    </a>
    <div class="cleaner_h10"></div>
    <a href="index.jsp?text=rotate_reflect">
        <input type="button" value="Поворот/отражение" <% if (session.getAttribute("current_image").equals("") || session.getAttribute("processing_seamless_cloning") != null) out.write("disabled"); %> style="width:168px; height:60px;">
    </a>
    <div class="cleaner_h10"></div>
    <a href="index.jsp?text=crop">
        <input type="button" value="Кадрирование (обрезка)" <% if (session.getAttribute("current_image").equals("") || session.getAttribute("processing_seamless_cloning") != null) out.write("disabled"); %> style="width:168px; height: 60px;">
    </a>
    <div class="cleaner_h10"></div>
    <a href="index.jsp?text=grayscale">
        <input type="button" value="Сделать чёрно-белым" <% if (session.getAttribute("current_image").equals("") || session.getAttribute("processing_seamless_cloning") != null) out.write("disabled"); %> style="width:168px; height: 60px;">
    </a>
    <div class="cleaner_h10"></div>
    <a href="index.jsp?text=invert">
        <input type="button" value="Инвертировать цвета" <% if (session.getAttribute("current_image").equals("") || session.getAttribute("processing_seamless_cloning") != null) out.write("disabled"); %> style="width:168px; height: 60px;">
    </a>
    <div class="cleaner_h10"></div>
     <a href="index.jsp?text=seamless_cloning">
       <input type="button" value="Бесшовное копирование" <% if (session.getAttribute("current_image").equals("") || session.getAttribute("processing_seamless_cloning") != null || !"true".equals(session.getAttribute("ok"))) out.write("disabled"); %> style="width:168px; height: 60px;">
    </a>
</div>

<!-- Конец секции функциональных кнопок ---------------------------------------->





<!-- Рабочая область ----------------------------------------------------------->

<div id="workArea" style="border: 1px solid; width:640px; height:480px; float:left; background: url(images/workarea_background.png);" onmousemove="mouseMoved()" onmousedown="mousePressed()" onmouseup="mouseReleased()">
<%
    String currentImage = (String) session.getAttribute("current_image");
    if (!currentImage.equals("")) {
        out.write("<img src=\"images/" + currentImage + ".png\" height=\"480\" id=\"currentImage\" alt=\"Текущее изображение\">");
    }
%>
<img src="images/selection.png" id="selection" style="position:absolute; left:0px; top:0px;" width=0 height=0>
<%
    String fragment = (String) session.getAttribute("fragment");
    if (fragment != null) {
        out.write("<img src=\"images/" + fragment + ".png\" id=\"fragment\" alt=\"Копируемый фрагмент\" style=\"position:absolute; left:" + Integer.parseInt(request.getParameter("abs_x")) + "px; top:" + Integer.parseInt(request.getParameter("abs_y")) + "px;\">");
    }
%>
</div>

<!-- Конец рабочей области ----------------------------------------------------->





<!-- Секция подсказок ---------------------------------------------------------->

<div align="center" style="border: 1px dashed; width:162px; height:480px; border-radius:15px; float:left; margin-left:6px;">
    <div class="cleaner_h10"></div>
    <%
        if ("brightness_contrast".equals(text)) {
            out.write("Яркость:<br><br>");
            out.write("<input type=\"range\" min=\"-100\" max=\"100\" id=\"brightnessInput\" onmouseup=\"updateImageRequest(101)\">");
            out.write("<br><br><br><br>");
            out.write("Констрастность:<br><br>");
            out.write("<input type=\"range\" min=\"0\" max=\"200\" id=\"contrastInput\" onmouseup=\"updateImageRequest(102)\">");
            //
            out.write("<div class=\"cleaner_h40\"></div>");
            out.write("<a href=\"index.jsp?text=apply_editing\">");
            out.write("<input type=\"button\" value=\"Применить\" style=\"width:150px; height:30px; font-size:14px;\">");
            out.write("</a>");
            out.write("<br><br>");
            out.write("<a href=\"index.jsp?text=discard_editing\">");
            out.write("<input type=\"button\" value=\"Отмена\" style=\"width:150px; height:30px; font-size:14px;\">");
            out.write("</a>");
        } else if ("rotate_reflect".equals(text)) {
            out.write("<input type=\"button\" value=\"Повернуть влево\" style=\"width:150px; height:30px; font-size:14px;\" onclick=\"updateImageRequest(103)\">");
            out.write("<div class=\"cleaner_h10\"></div>");
            out.write("<input type=\"button\" value=\"Повернуть вправо\" style=\"width:150px; height:30px; font-size:14px;\" onclick=\"updateImageRequest(104)\">");
            out.write("<div class=\"cleaner_h10\"></div>");
            out.write("<input type=\"button\" value=\"Повернуть на 180°\" style=\"width:150px; height:30px; font-size:14px;\" onclick=\"updateImageRequest(105)\">");
            out.write("<div class=\"cleaner_h10\"></div>");
            out.write("<input type=\"button\" value=\"Отразить горизонтально\" style=\"width:150px; height:30px; font-size:13px;\" onclick=\"updateImageRequest(106)\">");
            out.write("<div class=\"cleaner_h10\"></div>");
            out.write("<input type=\"button\" value=\"Отразить вертикально\" style=\"width:150px; height:30px; font-size:13px;\" onclick=\"updateImageRequest(107)\">");
            //
            out.write("<div class=\"cleaner_h40\"></div>");
            out.write("<a href=\"index.jsp?text=apply_editing\">");
            out.write("<input type=\"button\" value=\"Применить\" style=\"width:150px; height:30px; font-size:14px;\">");
            out.write("</a>");
            out.write("<div class=\"cleaner_h10\"></div>");
            out.write("<a href=\"index.jsp?text=discard_editing\">");
            out.write("<input type=\"button\" value=\"Отмена\" style=\"width:150px; height:30px; font-size:14px;\">");
            out.write("</a>");
        } else if ("crop".equals(text)) {
            out.write("Выделите область кадрирования и нажмите \"Применить\".");
            //
            out.write("<div class=\"cleaner_h40\"></div>");
            out.write("<a href=\"index.jsp\" id=\"applyCropWrapper\">");
            out.write("<input type=\"button\" value=\"Применить\" style=\"width:150px; height:30px; font-size:14px;\" id=\"applyCropButton\" disabled>");
            out.write("</a>");
            out.write("<div class=\"cleaner_h10\"></div>");
            out.write("<a href=\"index.jsp?text=discard_editing\">");
            out.write("<input type=\"button\" value=\"Отмена\" style=\"width:150px; height:30px; font-size:14px;\">");
            out.write("</a>");
        } else if (session.getAttribute("processing_seamless_cloning") != null) {
        %>
            <p style="font-size:12px;"><b>1.</b> Текущее изображение считается приемником.</p>
            <a href="index.jsp?text=seamless_cloning&subtext=goto_photo1" id="photo1ButtonWrapper">
                <input type="button" name="photo1" value="Фото 1 (приёмник)" style="width:150px; height:30px;" <% if (!photo1ButtonEnabled) out.write("disabled"); %> >
            </a>
            <p style="font-size:12px;"><b>2.</b> Перейдите на "Фото 2", откройте изображение-источник и выделите копируемый фрагмент.</p>
            <a href="index.jsp?text=seamless_cloning&subtext=goto_photo2">
                <input type="button" name="photo2" value="Фото 2 (источник)" style="width:150px; height:30px;" <% if (!photo2ButtonEnabled) out.write("disabled"); %> >
            </a>
            <p style="font-size:12px;"><b>3.</b> Вернитесь на "Фото 1" и расположите фрагмент нужным образом.</p>
            <p style="font-size:12px;"><b>4.</b> Нажмите "Применить".</p>
            <!--  -->
        <%
            out.write("<div class=\"cleaner_h40\"></div>");
            out.write("<a href=\"index.jsp?text=seamless_cloning&subtext=apply_seamless_cloning\" id=\"applySeamlessCloningWrapper\">");
            out.write("<input type=\"button\" value=\"Применить\" style=\"width:150px; height:30px; font-size:14px;\" " + ((session.getAttribute("ready_for_seamless_cloning") != null) ? "" : "disabled") + ">");
            out.write("</a>");
            out.write("<br><br>");
            out.write("<a href=\"index.jsp?text=discard_editing\">");
            out.write("<input type=\"button\" value=\"Отмена\" style=\"width:150px; height:30px; font-size:14px;\">");
            out.write("</a>");
        } else {
            out.write("<div><b>Информационная<br>панель</b></div>");
        }
    %>
</div>

<!-- Конец секции подсказок ---------------------------------------------------->





<!-- Footer -------------------------------------------------------------------->

<div class="cleaner_h20"></div>
<div align="center" style="border: 1px dashed; width:996px; height:30px; border-radius:15px;">
    <p style="margin-top:5px;">Copyright © 2011 Dendropark Team</p>
</div>
<div class="cleaner_h10"></div>

<!-- End Footer ---------------------------------------------------------------->





</div>

</body>
</html>
